package org.example.utils;

import at.favre.lib.crypto.bcrypt.BCrypt;
import org.springframework.stereotype.Component;

@Component
public class PasswordEncoder {
    
    /**
     * 对密码进行加密
     * @param password 原始密码
     * @return 加密后的密码
     */
    public String encode(String password) {
        return BCrypt.withDefaults().hashToString(12, password.toCharArray());
    }
    
    /**
     * 验证密码是否正确
     * @param plainPassword 明文密码
     * @param hashedPassword 加密后的密码
     * @return 验证结果
     */
    public boolean matches(String plainPassword, String hashedPassword) {
        BCrypt.Result result = BCrypt.verifyer().verify(plainPassword.toCharArray(), hashedPassword);
        return result.verified;
    }
}